Помощь - Поиск - Пользователи - Календарь
Перейти к полной версии этой страницы на форумах сайта Электрик: Smart IMS 6.0 и WEB сервер
Форумы сайта ЭЛЕКТРИК > Электроснабжение и Оборудование > Счетчики электрической энергии


yuoras
Вот всё хочу ,получать данные через Web интерфейс с Addax.
P32.x идущее с Addax требует не малых знаний парсинга xml.
Предлагали вариант такой :
Установить дополнительно ещё My SQL +apache и каждый день выгружать с MSSQL в My SQL

Может кто то владеет , возможно уже реализован какой то по-проще метод.

Заранее благодарен!!!
РоманК
Цитата(yuoras @ 2.10.2014, 18:28) *
Предлагали вариант такой :
Установить дополнительно ещё My SQL +apache и каждый день выгружать с MSSQL в My SQL


Ну да в этом деле Матрикс АММ немного совершеннее, она и разрабатывалась под ВЕБ.
Да этот вариант думаю правильный ...
Но тут нужны знания работы с веб-сервером.
Я даже книгу себе купил "PHP и MySQL. от новичка к профессионалу. Кевин Янк" - очень прикольная книга.
Но так как занимаюсь ремонтами электроники, руки просто не доходят, времени катастрофически не хватает. )
yuoras
Так много систем и под MSSQL с поддержкой WEB.
У меня на одном сервере, стоят две автом.системы (Smart и Electro) обе заточены под MSSQL.
Electro без проблем юзает web , а вот Smart пока не получается.
Было бы дикостью ещё и на сервер ставить MySql.
Docmsk
У меня на странице вот такой код запрашивает данные на зарегестрировавшегося на сайте пользователя и выводит на страничке. MySQL и HTTP серверы работают на одной машине.
Код
{source}
<?php
$user =&JFactory::getUser(); здесь  запрашивается ID пользователя, а в таблице dbo.cp_EISPoint добавлен еще  один столбец с ID, значения в нем соответствуют ID этого юзера в  phpmyadmin
$a['Database']='ADDAXDB_APPSERVER';
$a['UID']='здесь логин';
$a['PWD']=' сюда надо вставить пароль';
$a['CharacterSet']='UTF-8';
if (!$con = sqlsrv_connect('ASKUE\SQLEXPRESS,1715', $a))
die (print_r( sqlsrv_errors(), true));
else
$query  = 'SELECT CASE LogicalName WHEN 0x01000F0803FF THEN 1 WHEN  0x01000F0801FF THEN 2 ELSE 3 END ptype, CONVERT(VARCHAR(10),Time,104) AS  dt, MAX(Value) AS maxvalue FROM cp_Data d INNER JOIN cp_EISpoints p ON  d.CPID=p.CPID WHERE p.ID_PHP='.$user->id.' AND  (LogicalName=0x01000F0800FF OR LogicalName=0x01000F0801FF OR  LogicalName=0x01000F0803FF) GROUP BY YEAR(Time), MONTH(Time), DAY(Time),  CONVERT(VARCHAR(10),Time,104), LogicalName ORDER BY YEAR(Time),  MONTH(Time), DAY(Time), LogicalName DESC';
$res=sqlsrv_query($con,$query) or die (print_r( sqlsrv_errors(), true));
echo '<table width="100%" border="1">';
echo  '<tr><th>Дата</th><th>Показание счётчика, день,  Вт*ч</th><th>Показание счётчика, ночь,  Вт*ч</th><th>Показание счётчика, суммарное,  Вт*ч</th><th>Суточное потребление,  Вт*ч</th></tr>';
$i=1;
$prval=0;
while ($izm=sqlsrv_fetch_array($res))
{
if ($i==1) echo '<tr><td align="center">'.$izm['dt'].'</td>';
while ($i<$izm['ptype'])
{
echo '<td> </td>';
$i++;
}
echo '<td align="center">'.($izm['maxvalue']).'</td>';
if ($i==3)
{
echo '<td align="center">'.round(($izm['maxvalue']-$prval)).'</td></tr>';
$prval=$izm['maxvalue'];
$i=1;
} else $i++;
}
echo '</table>';
?>
{/source}


К сожалению я не программист, объяснил как смог. Если что спрашивайте.
Alexisss
Отвечу как программист.
У PHP (на котором работает ваш сайт) есть подключаемый модуль MSSQL.
Надо просто "перекомпилить" php для работы с базой MSSQL

Доступ к информации со счетчиков в MSSQL ADDAX пережевывали в этом форуме уже не раз...
yuoras
Спасибо Docmsk.
Мне это понятно.
У Вас работает ещё одна БД Mysql в связке с web сервером.
Я хочу обойтись без установки ещё одной БД.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
   Rambler's Top100      
Электрик © 2002-2008 Oleg Kuznetsov     
  Русская версия IP.Board © 2001-2025 IPS, Inc.